+ /**
+ * Use the HTML tidy PECL extension to use the tidy library in-process,
+ * saving the overhead of spawning a new process. Currently written to
+ * the PHP 4.3.x version of the extension, may not work on PHP 5.
+ *
+ * 'pear install tidy' should be able to compile the extension module.
+ *
+ * @access private
+ * @static
+ */
+ function internalTidy( $text ) {
+ global $wgTidyConf;
+ $fname = 'Parser::internalTidy';
+ wfProfileIn( $fname );
+
+ tidy_load_config( $wgTidyConf );
+ tidy_set_encoding( 'utf8' );
+ tidy_parse_string( $text );
+ tidy_clean_repair();
+ if( tidy_get_status() == 2 ) {
+ // 2 is magic number for fatal error
+ // http://www.php.net/manual/en/function.tidy-get-status.php
+ $cleansource = null;
+ } else {
+ $cleansource = tidy_get_output();
+ }
+ wfProfileOut( $fname );
+ return $cleansource;
+ }
+